// The path from the root of the mission to the root of the framework WITHOUT a trailing slash
#define TMF_PATH tmf\mission

// For hash/array dumps
#define __DUMP_INDENT__	"    "

// Used as an identifier for the Server Instance
#define TMF_SERVER_INSTANCE_ID	"SERVER"

// Used as the basis to name editor objectives
#define TMF_EDITOR_OBJECTIVE "tmf_edt_%1"

// Used to create the local markers syncrhonized in jip for missions
#define TMF_LOCAL_MARKER_NAME "tmf_loc_mrk_%1_%2"

// Name of the variable used to export the created objects
#define EXPORT_VARIABLE TMF_EXPORT_OBJECTS

// Defines the array structure of a shape
#define TMF_SHAPE_CENTER 0
#define TMF_SHAPE_WIDTH 1
#define TMF_SHAPE_HEIGHT 2
#define TMF_SHAPE_ANGLE 3
#define TMF_SHAPE_RECTANGLE 4


// Defines the array structure for the spawned items in Random Spawn like Convoys, roadblocks, etc.
#define TMF_SPAWN_ARRAY_SECTOR 0
#define TMF_SPAWN_ARRAY_SPAWNTIME 1
#define TMF_SPAWN_ARRAY_STARTPOS 2
#define TMF_SPAWN_ARRAY_OBJECTNAME 3
#define TMF_SPAWN_ARRAY_RADIUS 4
#define TMF_SPAWN_ARRAY_GROUP 5
#define TMF_SPAWN_ARRAY_UNITSARRAY 6
#define TMF_SPAWN_ARRAY_OBJECTSARRAY 7
#define TMF_SPAWN_ARRAY_MARKERSARRAY 8

// The structure of the sectors array
#define TMF_SECTOR_ARRAY_TYPE 0
#define TMF_SECTOR_ARRAY_SHAPE_ARRAY 1
#define TMF_SECTOR_ARRAY_DISPLAY_NAME 2
#define TMF_SECTOR_ARRAY_UNIQUE_NAME 3

#define TMF_SECTOR_TYPE_MISSIONS 0
#define TMF_SECTOR_TYPE_SPAWN 1

// The structure of the map locations array
#define TMF_MAP_LOCATION_CENTER 0
#define TMF_MAP_LOCATION_DISPLAYNAME 1
#define TMF_MAP_LOCATION_UNIQUENAME 2
#define TMF_MAP_LOCATION_SIZE 3
#define TMF_MAP_LOCATION_TYPE 4
#define TMF_MAP_LOCATION_MISSIONSECTOR 5
#define TMF_MAP_LOCATION_CIVILDENSITY 6
#define TMF_MAP_LOCATION_ROADBLOCK 7
#define TMF_MAP_LOCATION_AEGSECTION 8

#define TMF_MAP_LOCATION_TYPE_TOWN 0
#define TMF_MAP_LOCATION_TYPE_VILLAGE 1
#define TMF_MAP_LOCATION_TYPE_LONELY 2
#define TMF_MAP_LOCATION_TYPE_SPECIAL 3
#define TMF_MAP_LOCATION_TYPE_MILITARY 4
#define TMF_MAP_LOCATION_TYPE_INDUSTRIAL 5
#define TMF_MAP_LOCATION_TYPE_GRASSLAND 6
#define TMF_MAP_LOCATION_TYPE_FOREST 7
#define TMF_MAP_LOCATION_TYPE_BEACH 8
#define TMF_MAP_LOCATION_TYPE_ISLAND 9
#define TMF_MAP_LOCATION_TYPE_MOUNTAIN 10
#define TMF_MAP_LOCATION_TYPE_AIRPORT 11

// The positions in the array of vehicle types
#define TMF_VEHICLE_TYPES_TANK 0
#define TMF_VEHICLE_TYPES_HEAVYAPC 1
#define TMF_VEHICLE_TYPES_LIGHTAPC 2
#define TMF_VEHICLE_TYPES_TRUCKS 3
#define TMF_VEHICLE_TYPES_HEAVYWHEEL 4
#define TMF_VEHICLE_TYPES_LIGHTWHEEL 5
#define TMF_VEHICLE_TYPES_STATIC 6
#define TMF_VEHICLE_TYPES_STATICAA 7
#define TMF_VEHICLE_TYPES_ARTILLERY 8
#define TMF_VEHICLE_TYPES_FUEL 9
#define TMF_VEHICLE_TYPES_REPAIR 10
#define TMF_VEHICLE_TYPES_AMMO 11
#define TMF_VEHICLE_TYPES_TRANSPORT 12
#define TMF_VEHICLE_TYPES_CHOPPERS 13
#define TMF_VEHICLE_TYPES_AIRTRANS 14


// The building positions array
#define TMF_BUILDING_POS_COMBAT 0
#define TMF_BUILDING_POS_HIDE 1
#define TMF_BUILDING_POS_SNIPER 2
#define TMF_BUILDING_POS_VEHICLE 2


// The soldier types
#define TMF_UNIT_TYPES_NORMAL 0
#define TMF_UNIT_TYPES_SPECIAL_FORCE 1
#define TMF_UNIT_TYPES_SNIPER 2


// Mission characters array
#define TMF_MISSION_CHAR_CIVILIAN_WOMEN 0
#define TMF_MISSION_CHAR_CIVILIAN_MEN 1
#define TMF_MISSION_CHAR_CIVILIAN_OFFICIAL 2
#define TMF_MISSION_CHAR_CIVILIAN_CRIMINAL 3
#define TMF_MISSION_CHAR_MILITARY_OFFICER 4
#define TMF_MISSION_CHAR_MILITARY_PILOT 5
#define TMF_MISSION_CHAR_MILITARY_CREW 6
#define TMF_MISSION_CHAR_MILITARY_SOLDIER 7
#define TMF_MISSION_CHAR_SPY 8
#define TMF_MISSION_CHAR_INFORMER 9

// Function Register Object Parameters
#define TMF_REGISTER_OBJECT 0
#define TMF_REGISTER_ACTION 1
#define TMF_REGISTER_INSTANCE 2

// Function Execute Action Parameters
#define TMF_EXECUTE_ACTION_OBJECT 0
#define TMF_EXECUTE_ACTION_CALLER 1
#define TMF_EXECUTE_ACTION_ID 2
#define TMF_EXECUTE_ACTION_ARGS 3
#define TMF_EXECUTE_ACTION_ACTION 4

#define TMF_EXECUTE_ACTION_PARAM_ACTID 0
#define TMF_EXECUTE_ACTION_PARAM_FUNC 1
#define TMF_EXECUTE_ACTION_PARAM_TARGET 2

#define TMF_CREATION_OBJPARAMS 0
#define TMF_CREATION_ACTION 1
#define TMF_CREATION_ACTPARAMS 2
#define TMF_CREATION_INSTANCE 3

// object or unit parameters
#define TMF_VEH_PARAMS_TYPE 0
#define TMF_VEH_PARAMS_POS 1
#define TMF_VEH_PARAMS_GRP 2
#define TMF_VEH_PARAMS_INIT 3
#define TMF_VEH_PARAMS_SPEC 4
#define TMF_VEH_PARAMS_IDENTITY 5

// Mission description array
#define TMF_MD_ID		0
#define TMF_MD_NAME		1
#define TMF_MD_DESC		2
#define TMF_MD_VERSION	3
#define TMF_MD_WORLDS	4
#define TMF_MD_AUTHOR	5

// String Replacement Constants
#define TMF_SR_ACTION_CALLER	"__CALLER__"

// System Hash Keys
#define TMF_HK_CARRIED_ITEMS	"__CARRIED_ITEMS__"
#define TMF_HK_MISSION_OBJECTS  "__MISSION_OBJECTS__"
#define TMF_HK_ACTION_ID		"__ACTION_ID__"
#define TMF_HK_ACTION_TYPE		"__ACTION_TYPE__"
#define TMF_HK_ACTION_EVENT		"__ACTION_EVENT__"
#define TMF_HK_ACTION_INSTANCE	"__ACTION_INSTANCE__"
#define TMF_HK_OBJECT_PARAMS	"__OBJECT_PARAMETERS__"
#define TMF_HK_ACTION_PARAMS	"__ACTION_PARAMETERS__"
#define TMF_HK_MISSION_TRIGGERS	"__MISSION_TRIGGERS__"
#define TMF_HK_MISSION_MARKERS	"__MISSION_MARKERS__"
#define TMF_HK_MISSION_TASKS	"__MISSION_TASKS__"
#define TMF_HK_MISSION_DESC		"__MISSION_DESCRIPTION__"
#define TMF_HK_MISSION_TASK		"__MISSION_TASK__"
#define TMF_HK_GLOBAL_VALUE		"__FRAMEWORK_VALUES__"
#define TMF_HK_INSTANCE_ID		"__INSTANCE_ID__"
#define TMF_HK_PLAYER_NAMES		"__PLAYER_NAMES__"
#define TMF_HK_REINFORCEMENTS	"__REINFORCEMENTS__"